package com.soen341.service;

import java.util.List;
import java.util.Map;

import com.soen341.model.CourseSequence;
import com.soen341.model.SequenceMember;

public interface SequenceService
{
	// --------------------------------------------------------------------------------------------------------------------------------
	/**
	 * Returns a collection of courses for the given programId.
	 */
	// --------------------------------------------------------------------------------------------------------------------------------
	public List<SequenceMember> loadByProgramId(String programId);


	// --------------------------------------------------------------------------------------------------------------------------------
	/**
	 * Returns a collection of courses for the given sequenceId.
	 */
	// --------------------------------------------------------------------------------------------------------------------------------
	public List<SequenceMember> loadBySequenceId(String sequenceId);


	// --------------------------------------------------------------------------------------------------------------------------------
	/**
	 * Returns a course sequence for the specified programId.
	 */
	// --------------------------------------------------------------------------------------------------------------------------------
	public CourseSequence loadSequenceByProgramId(String programId);


	// --------------------------------------------------------------------------------------------------------------------------------
	/**
	 * Returns a course sequence for the specified sequenceId.
	 */
	// --------------------------------------------------------------------------------------------------------------------------------
	public CourseSequence loadSequenceBySequenceId(String sequenceId);
	
	// --------------------------------------------------------------------------------------------------------------------------------
	/**
	 * Returns a collection of courses for the given sequenceID split into semesters
	*/
	// --------------------------------------------------------------------------------------------------------------------------------
	public List<Map<String,Object>> loadSemestersBySequenceId(String sequenceId);
}